package com.prd.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.prd.vo.BaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * ent_goal
 *
 * @author
 */
@Data
@TableName("ent_goal")
@ApiModel(value = "目标管理", description = "目标管理")
public class EntGoal extends BaseVo implements Serializable {
    /**
     * ID
     */
    @TableId
    private Long id;

    /**
     * 编号
     */
    @ApiModelProperty(value = "编号")
    private String number;

    /**
     * 目标名称
     */
    @ApiModelProperty(value = "目标名称")
    private String name;

    /**
     * 目标制定人
     */
    @ApiModelProperty(value = "目标制定人")
    private String enact;

    /**
     * 总负责人
     */
    @ApiModelProperty(value = "总负责人")
    private String overall;

    /**
     * 督导负责人
     */
    @ApiModelProperty(value = "督导负责人")
    private String supervisor;

    /**
     * 目标开始时间
     */
    @ApiModelProperty(value = "目标开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 要求完成时间
     */
    @ApiModelProperty(value = "要求完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 单项名称
     */
    @ApiModelProperty(value = "单项名称")
    private String singleName;

    /**
     * 绩效维度
     */
    @ApiModelProperty(value = "绩效维度")
    private String dimension;

    /**
     * 要点
     */
    @ApiModelProperty(value = "要点")
    private String gist;

    /**
     * 文字
     */
    @ApiModelProperty(value = "文字")
    private String content;

    /**
     * 录音
     */
    @ApiModelProperty(value = "录音")
    private String record;

    /**
     * 图片/文档
     */
    @ApiModelProperty(value = "图片/文档")
    private String picture;

    /**
     * 目标数
     */
    @ApiModelProperty(value = "目标数")
    private BigDecimal target;

    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String monad;

    /**
     * 目标备注
     */
    @ApiModelProperty(value = "目标备注")
    private String remark;

    /**
     * 状态：1：待审批、2：审核通过、3：审核不通过
     */
    @ApiModelProperty(value = "状态：1：待审批、2：审核通过、3：审核不通过")
    private Integer status;

    /**
     * 预算/计划投入 时间（天/工时）
     */
    @ApiModelProperty(value = "预算/计划投入 时间（天/工时）")
    private Double putTime;

    /**
     * 人员数
     */
    @ApiModelProperty(value = "人员数")
    private Integer putPersonnel;

    /**
     * 经济投入
     */
    @ApiModelProperty(value = "经济投入")
    private BigDecimal putEconomics;

    /**
     * 物品投入
     */
    @ApiModelProperty(value = "物品投入")
    private BigDecimal putGoods;

    /**
     * 资源投入
     */
    @ApiModelProperty(value = "资源投入")
    private BigDecimal putResource;

    /**
     * 投入备注
     */
    @ApiModelProperty(value = "投入备注")
    private String putRemark;

    /**
     * 依据/附件
     */
    @ApiModelProperty(value = "依据/附件")
    private String putAnnex;

    /**
     * 编辑
     */
    @ApiModelProperty(value = "编辑")
    private String redact;

    /**
     * 审核
     */
    @ApiModelProperty(value = "审核")
    private String audit;

    /**
     * 批准
     */
    @ApiModelProperty(value = "批准")
    private String ratify;

    /**
     * 抄送
     */
    @ApiModelProperty(value = "抄送")
    private String make;

    /**
     * 是否草稿：1：是、2：否
     */
    @ApiModelProperty(value = "是否草稿：1：是、2：否")
    private Integer isDraft;

    /**
     * 1：待执行、2：执行中、3：执行完成
     */
    @ApiModelProperty(value = "1：待执行、2：执行中、3：执行完成")
    private Integer execute;

    /**
     * 1：由我负责执行、2：目标责任分解
     */
    @ApiModelProperty(value = "1：由我负责执行、2：目标责任分解")
    private Integer resolve;

    @ApiModelProperty(value = "上一层目标ID（分解责任才存在）")
    private Long goalId;

    /**
     * 分解：0：总目标、1：第一层、2：第二层
     */
    @ApiModelProperty(value = "分解：0：总目标、1：第一层、2：第二层")
    private Integer decompose;

    @ApiModelProperty(value = "变更原因")
    private String reasons;

    @ApiModelProperty(value = "是否撤销：1：是、2：否")
    private Integer revocation;

    @ApiModelProperty(value = "督导 是否达标：1：是、2：否")
    private Integer supervisorReach;

    @ApiModelProperty(value = "'要点'")
    private String supervisorGist;

    @ApiModelProperty(value = "'文字'")
    private String supervisorContent;

    @ApiModelProperty(value = "'录音'")
    private String supervisorRecord;

    @ApiModelProperty(value = "图片/文档")
    private String supervisorPicture;

    private static final long serialVersionUID = 1L;
}